﻿using System.ServiceModel;
using System.ServiceModel.Web;

namespace EIP.AgreementRegistryServices
{
    [ServiceContract]
    public interface IIdentificationService
    {
        /// <summary>
        /// Метод по переданному сертификату возвращает сведения об участнике. 
        /// Применяется потребителем для проверки подлинности поставщика.
        /// </summary>
        [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "/Identificate")]
        IdentificationTokenType Identificate( IdentificationTokenRequestType request );

        /// <summary>
        /// Метод по переданному сертификату и данным о вызываемом методе (участник, сервис, метод)  возвращает сведения об участнике и его роли в рамках указанного метода. 
        /// Применяется поставщиком для проверки прав потребителя в рамках сервиса.
        /// </summary>
        [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "/Authorize",
               BodyStyle = WebMessageBodyStyle.Bare)]
        AuthorizationTokenType Authorize( AuthorizationTokenRequestType request );
    }
}
